#include <stdio.h>

//二分查找函数
int binarySearch(int arr[],int size,int target){
    int min = 0;//先设置最小值和最大值的位置
    int max = size-1;
    while (min<=max)
    {
        int mid = (min+max)/2;
        //如果中间元素等于目标元素，返回中间元素的索引
        if(arr[mid]==target){
            return mid;
        }
        //如果中间元素大于目标元素，在左半部分继续查找
        if(arr[mid]>target){
            max = mid-1;
        }
        //如果中间元素小于目标元素，在右半部分继续查找
        else{
            min = mid+1;
        }
    }
    return -1; //未找到目标元素，返回标识
}

int main(){
    int arr[]={1,3,5,7,9,11,13,15};
    int size = sizeof(arr)/sizeof(arr[0]);
    int target = 9;

    printf("有序数组: ");
    for(int i=0;i<size;i++){
        printf("%d ",arr[i]);
    }
    printf("\n");

    int result = binarySearch(arr,size,target);

    if(result!=-1){
        printf("元素%d找到，索引为%d\n",target,result);
    }else{
        printf("元素%d未找到\n",target);
    }

    return 0;
}